home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / foo < prev    next >
Text File  |  1993-08-16  |  7KB  |  165 lines

  1.         SDRAW, DTRACE, and PPMX Tools
  2.            Software To Accompany
  3.   Common Lisp: A Gentle Introduction to Symbolic Computation
  4.                    by David S. Touretzky
  5.  
  6.        Copyright (c) 1990 by Symbolic Technology, Ltd.
  7.  
  8.    Published by The Benjamin/Cummings Publishing Company, Inc.
  9.             390 Bridge Parkway
  10.               Redwood City, CA 94065
  11.  
  12. ****************************************************************
  13.             *COPYRIGHT NOTICE*
  14.  
  15. These tools are made available to adopters of Common Lisp: A
  16. Gentle Introduction to Symbolic Computation.  They are intended
  17. for instructional use, and copies may be made for this purpose,
  18. provided that no fee is charged for the copies.  All other uses
  19. and distribution modes are prohibited without the prior written
  20. permission of Symbolic Technology, Ltd.
  21. ****************************************************************
  22.  
  23. This directory contains six versions of the SDRAW and DTRACE tools
  24. described in Touretzky's book.  Each version has a different extension:
  25.  
  26.   .generic  - Generic version
  27.   .cmucl    - CMU Common Lisp version
  28.   .lucid    - Lucid Lisp version
  29.   .allegro  - Allegro Common Lisp version
  30.   .kcl      - Kyoto Common Lisp
  31.   .gc1      - Golden Common Lisp 1.1 version
  32.   .gc3      - Golden Common Lisp 3.1 version
  33.  
  34. These versions differ in important ways, as outlined below.
  35.  
  36.     GENERIC VERSION 
  37.  The generic versions of SDRAW and DTRACE are identical to those published
  38. in Appendices A and B of the book.  The generic SDRAW will run in any legal
  39. Common Lisp implementation.  It uses ordinary printing characters to draw
  40. cons cell diagrams.  The generic version of DTRACE requires one
  41. implementation-dependent function, FETCH-ARGLIST.  See the discussion in
  42. Appendix B and the examples at the end of the source file for help on creating 
  43. a FETCH-ARGLIST function appropriate to your Lisp implementation.
  44.  
  45.  
  46.     CMUCL VERSION
  47.  The CMUCL versions of SDRAW and DTRACE are specific to CMU's implementation
  48. of Common Lisp.  The SDRAW implementation uses CLX, the Common Lisp-X Windows
  49. interface, to draw high quality cons cell diagrams using bitmapped
  50. graphics.  This implementation exploits the full functionality of CLX.  For
  51. example, it handles window reexposure events and adjusts its display
  52. parameters automatically when a window is resized.  Few people outside of
  53. Carnegie Mellon run CMU Common Lisp, but this version is included because
  54. it gives the best example of making SDRAW work with CLX.  The DTRACE
  55. implementation contains a CMU-specific version of FETCH-ARGLIST, but is
  56. otherwise the same as the generic version.
  57.  
  58.  
  59.     LUCID VERSION
  60.  The LUCID versions of SDRAW and DTRACE specific to release 3 of Lucid Common
  61. Lisp.  The SDRAW implementation uses basic CLX functions to draw cons cell
  62. diagrams on the bitmapped display, but does not respond to event
  63. notifications like the CMU Common Lisp version.  The DTRACE implementation
  64. is generic except for the FETCH-ARGLIST function.
  65.  
  66.  
  67.     ALLEGRO VERSION
  68.  Versions specific to Allegro Common Lisp.  The SDRAW implementation uses
  69. CLX functions for graphics, just like the Lucid version.  Thus this version
  70. of SDRAW can produce graphics on Suns and DEC Pmaxen, but not on the Macintosh.
  71. The DTRACE implementation is generic except for the FETCH-ARGLIST function.
  72.  
  73.     KCL VERSION
  74.  The KCL version of DTRACE is very close to the generic version; the
  75. differences have to do with FETCH-ARGLIST and a peculiarity of KCL's own
  76. trace macro.  There is no SDRAW.KCL; the generic version works fine.
  77.  
  78.     GC1 VERSION
  79.  The GC1 versions of SDRAW and DTRACE are specific to Golden Common Lisp
  80. version 1.1.  The SDRAW implementation uses the IBM graphic character set to
  81. draw nice-looking cons cell diagrams.  The DTRACE implementation uses the
  82. IBM graphic character set to produce nicer trace diagrams than the generic
  83. version.  Support for color displays is included.
  84.  
  85.  
  86.     GC3 VERSION
  87. The GC3 versions of SDRAW and DTRACE are specific to Golden Common Lisp
  88. version 3.1.  The SDRAW implementation uses the IBM graphic character set to
  89. draw nice-looking cons cell diagrams.  The DTRACE implementation uses the
  90. IBM graphic character set to produce nicer trace diagrams than the generic
  91. version.  Support for color displays is included.
  92.  
  93.  
  94.     OTHER FILES
  95.  This directory also holds a README file, which you are now reading, and a file
  96. ppmx.lisp containing a tool for pretty printing macro expansions.  This tool
  97. will work in any legal Common Lisp implementation.
  98.  
  99.  
  100. ****************************************************************
  101.  
  102. INSTALLATION INSTRUCTIONS
  103.  
  104. 1. Create a directory to hold the software.  For example, on an IBM PC
  105. class machine, you might call the directory "C:\GENTLE".  On a Unix
  106. machine you might call it "/usr/lisp/gentle".
  107.  
  108. 2. Copy the files from the appropriate directory on this diskette into
  109. the GENTLE directory on your machine.  You'll want one copy each of
  110. SDRAW and DTRACE, and a copy of PPMX.  If your Lisp isn't one of those
  111. listed above, use the generic versions of SDRAW and DTRACE.
  112.  
  113. 3. Run Lisp on your machine.  At the top level read-eval-print loop,
  114. load in the SDRAW tool.  Note: for GCLisp users, you need to type two
  115. backslash characters instead of one when entering file names.
  116.  
  117.     (load "c:\\gentle\\sdraw.lsp")        for GCLisp
  118.  
  119.     (load "/usr/lisp/gentle/sdraw.lisp")    for Unix
  120.  
  121. 4. Test the tool to make sure it works.  To test SDRAW, try this:
  122.  
  123.     (sdraw '(foo (bar) baz))
  124.  
  125. 5. If your Lisp has a compiler, you should compile the tools because they
  126. will run much faster that way.  In order to ensure correct compilation, it
  127. is a good idea to load the source files first, as we did in step 3.  Then,
  128. compile SDRAW by typing the following:
  129.  
  130.     (compile-file "c:\\gentle\\sdraw.lsp")        for GCLisp 3
  131.  
  132.     (compile-file "/usr/lisp/gentle/sdraw.lisp")    for Unix
  133.  
  134. The compiler will create a file called SDRAW.F2S (for GCLisp 3) or
  135. sdraw.lbin (for Lucid) or sdraw.fasl (for some other Lisps).
  136.  
  137. 6. Most Lisps have a provision for a user-modifiable init file, which can
  138. be used to adjust various default parameter settings and load desired
  139. software.  For example, GCLisp provides both an INIT.LSP file (for
  140. system-wide initializations) and a USERINIT.LSP file (for personal
  141. preferences.)  Lucid uses a file called lisp-init.lisp.
  142.  
  143. You may want to add a few lines to your init file to automatically load in
  144. the SDRAW, DTRACE, and PPMX tools, especially if you're teaching a class
  145. and want all students to automatically have access to them.  To
  146. automatically load SDRAW, add a line like the following:
  147.  
  148.     (load "c:\\gentle\\sdraw.f2s")        for GCLisp 3
  149.  
  150.     (load "/usr/lisp/gentle/sdraw.lbin")    for Lucid
  151.  
  152. 7. Repeat steps 3 through 6 for the DTRACE and PPMX tools.  Note that in
  153. the case of DTRACE, if you're not using GCLisp or Lucid Lisp, you will need
  154. to modify the FETCH-ARGLIST function in an implementation-dependent way in
  155. order to get the full functionality shown in the book.  But DTRACE can be
  156. made to work in any generic Common Lisp by defining FETCH-ARGLIST to return
  157. NIL.  See the comments in the source for the generic version of DTRACE for
  158. more information.
  159.  
  160. Note: if you're running GCLisp on a color display, you must set the
  161. variable SYS::*MONITOR-IS-COLOR* to T in your CONFIG.LSP file in order to
  162. enable the use of color by GCLisp programs, including SDRAW and DTRACE.
  163. The variable must be set in CONFIG.LSP; changing it after the Lisp has
  164. booted will not have the desired effect.
  165.